﻿namespace PeriodicTable {
    public class Element {
        public string Name { get; private set; }
        public string Symbol { get; private set; }
        public int Number { get; private set; }
        public double Mass { get; private set; }
        public int Group { get; private set; }
        public int Period { get; private set; }

        public Element(int number, string name, string symbol, int period, int group, double mass) {
            Name = name;
            Symbol = symbol;
            Number = number;
            Mass = mass;
            Group = group;
            Period = period;
        }

        public static readonly Element Hydrogen = new Element(1, "Hydrogen", "H", 1, 1, 1.00794);
        public static readonly Element Helium = new Element(2, "Helium", "He", 1, 18, 4.002602);
        public static readonly Element Lithium = new Element(3, "Lithium", "Li", 2, 1, 6.941);
        public static readonly Element Beryllium = new Element(4, "Beryllium", "Be", 2, 2, 9.012182);
        public static readonly Element Boron = new Element(5, "Boron", "B", 2, 13, 10.811);
        public static readonly Element Carbon = new Element(6, "Carbon", "C", 2, 14, 12.0107);
        public static readonly Element Nitrogen = new Element(7, "Nitrogen", "N", 2, 15, 14.0067);
        public static readonly Element Oxygen = new Element(8, "Oxygen", "O", 2, 16, 15.9994);
        public static readonly Element Fluorine = new Element(9, "Fluorine", "F", 2, 17, 18.9984032);
        public static readonly Element Neon = new Element(10, "Neon", "Ne", 2, 18, 20.1797);
        public static readonly Element Sodium = new Element(11, "Sodium", "Na", 3, 1, 22.98976928);
        public static readonly Element Magnesium = new Element(12, "Magnesium", "Mg", 3, 2, 24.3050);
        public static readonly Element Aluminium = new Element(13, "Aluminium", "Al", 3, 13, 26.9815386);
        public static readonly Element Silicon = new Element(14, "Silicon", "Si", 3, 14, 28.0855);
        public static readonly Element Phosphorus = new Element(15, "Phosphorus", "P", 3, 15, 30.973762);
        public static readonly Element Sulfur = new Element(16, "Sulfur", "S", 3, 16, 32.065);
        public static readonly Element Chlorine = new Element(17, "Chlorine", "Cl", 3, 17, 35.453);
        public static readonly Element Argon = new Element(18, "Argon", "Ar", 3, 18, 39.948);
        public static readonly Element Potassium = new Element(19, "Potassium", "K", 4, 1, 39.0983);
        public static readonly Element Calcium = new Element(20, "Calcium", "Ca", 4, 2, 40.078);
        public static readonly Element Scandium = new Element(21, "Scandium", "Sc", 4, 3, 44.955912);
        public static readonly Element Titanium = new Element(22, "Titanium", "Ti", 4, 4, 47.867);
        public static readonly Element Vanadium = new Element(23, "Vanadium", "V", 4, 5, 50.9415);
        public static readonly Element Chromium = new Element(24, "Chromium", "Cr", 4, 6, 51.9961);
        public static readonly Element Manganese = new Element(25, "Manganese", "Mn", 4, 7, 54.938045);
        public static readonly Element Iron = new Element(26, "Iron", "Fe", 4, 8, 55.845);
        public static readonly Element Cobalt = new Element(27, "Cobalt", "Co", 4, 9, 58.933195);
        public static readonly Element Nickel = new Element(28, "Nickel", "Ni", 4, 10, 58.6934);
        public static readonly Element Copper = new Element(29, "Copper", "Cu", 4, 11, 63.546);
        public static readonly Element Zinc = new Element(30, "Zinc", "Zn", 4, 12, 65.38);
        public static readonly Element Gallium = new Element(31, "Gallium", "Ga", 4, 13, 69.723);
        public static readonly Element Germanium = new Element(32, "Germanium", "Ge", 4, 14, 72.64);
        public static readonly Element Arsenic = new Element(33, "Arsenic", "As", 4, 15, 74.92160);
        public static readonly Element Selenium = new Element(34, "Selenium", "Se", 4, 16, 78.96);
        public static readonly Element Bromine = new Element(35, "Bromine", "Br", 4, 17, 79.904);
        public static readonly Element Krypton = new Element(36, "Krypton", "Kr", 4, 18, 83.798);
        public static readonly Element Rubidium = new Element(37, "Rubidium", "Rb", 5, 1, 85.4678);
        public static readonly Element Strontium = new Element(38, "Strontium", "Sr", 5, 2, 87.62);
        public static readonly Element Yttrium = new Element(39, "Yttrium", "Y", 5, 3, 88.90585);
        public static readonly Element Zirconium = new Element(40, "Zirconium", "Zr", 5, 4, 91.224);
        public static readonly Element Niobium = new Element(41, "Niobium", "Nb", 5, 5, 92.90638);
        public static readonly Element Molybdenum = new Element(42, "Molybdenum", "Mo", 5, 6, 95.96);
        public static readonly Element Technetium = new Element(43, "Technetium", "Tc", 5, 7, 98.9063);
        public static readonly Element Ruthenium = new Element(44, "Ruthenium", "Ru", 5, 8, 101.07);
        public static readonly Element Rhodium = new Element(45, "Rhodium", "Rh", 5, 9, 102.9055);
        public static readonly Element Palladium = new Element(46, "Palladium", "Pd", 5, 10, 106.42);
        public static readonly Element Silver = new Element(47, "Silver", "Ag", 5, 11, 107.8682);
        public static readonly Element Cadmium = new Element(48, "Cadmium", "Cd", 5, 12, 112.411);
        public static readonly Element Indium = new Element(49, "Indium", "In", 5, 13, 114.818);
        public static readonly Element Tin = new Element(50, "Tin", "Sn", 5, 14, 118.710);
        public static readonly Element Antimony = new Element(51, "Antimony", "Sb", 5, 15, 121.760);
        public static readonly Element Tellurium = new Element(52, "Tellurium", "Te", 5, 16, 127.60);
        public static readonly Element Iodine = new Element(53, "Iodine", "I", 5, 17, 126.90447);
        public static readonly Element Xenon = new Element(54, "Xenon", "Xe", 5, 18, 131.293);
        public static readonly Element Caesium = new Element(55, "Caesium", "Cs", 6, 1, 132.9054519);
        public static readonly Element Barium = new Element(56, "Barium", "Ba", 6, 2, 137.327);
        public static readonly Element Lanthanum = new Element(57, "Lanthanum", "La", 6, 0, 138.90547);
        public static readonly Element Cerium = new Element(58, "Cerium", "Ce", 6, 0, 140.116);
        public static readonly Element Praseodymium = new Element(59, "Praseodymium", "Pr", 6, 0, 140.90765);
        public static readonly Element Neodymium = new Element(60, "Neodymium", "Nd", 6, 0, 144.242);
        public static readonly Element Promethium = new Element(61, "Promethium", "Pm", 6, 0, 146.9151);
        public static readonly Element Samarium = new Element(62, "Samarium", "Sm", 6, 0, 150.36);
        public static readonly Element Europium = new Element(63, "Europium", "Eu", 6, 0, 151.964);
        public static readonly Element Gadolinium = new Element(64, "Gadolinium", "Gd", 6, 0, 157.25);
        public static readonly Element Terbium = new Element(65, "Terbium", "Tb", 6, 0, 158.92535);
        public static readonly Element Dysprosium = new Element(66, "Dysprosium", "Dy", 6, 0, 162.500);
        public static readonly Element Holmium = new Element(67, "Holmium", "Ho", 6, 0, 164.93032);
        public static readonly Element Erbium = new Element(68, "Erbium", "Er", 6, 0, 167.259);
        public static readonly Element Thulium = new Element(69, "Thulium", "Tm", 6, 0, 168.93421);
        public static readonly Element Ytterbium = new Element(70, "Ytterbium", "Yb", 6, 0, 173.054);
        public static readonly Element Lutetium = new Element(71, "Lutetium", "Lu", 6, 3, 174.9668);
        public static readonly Element Hafnium = new Element(72, "Hafnium", "Hf", 6, 4, 178.49);
        public static readonly Element Tantalum = new Element(73, "Tantalum", "Ta", 6, 5, 180.9479);
        public static readonly Element Tungsten = new Element(74, "Tungsten", "W", 6, 6, 183.84);
        public static readonly Element Rhenium = new Element(75, "Rhenium", "Re", 6, 7, 186.207);
        public static readonly Element Osmium = new Element(76, "Osmium", "Os", 6, 8, 190.23);
        public static readonly Element Iridium = new Element(77, "Iridium", "Ir", 6, 9, 192.217);
        public static readonly Element Platinum = new Element(78, "Platinum", "Pt", 6, 10, 195.084);
        public static readonly Element Gold = new Element(79, "Gold", "Au", 6, 11, 196.966569);
        public static readonly Element Mercury = new Element(80, "Mercury", "Hg", 6, 12, 200.59);
        public static readonly Element Thallium = new Element(81, "Thallium", "Tl", 6, 13, 204.3833);
        public static readonly Element Lead = new Element(82, "Lead", "Pb", 6, 14, 207.2);
        public static readonly Element Bismuth = new Element(83, "Bismuth", "Bi", 6, 15, 208.98040);
        public static readonly Element Polonium = new Element(84, "Polonium", "Po", 6, 16, 208.9824);
        public static readonly Element Astatine = new Element(85, "Astatine", "At", 6, 17, 209.9871);
        public static readonly Element Radon = new Element(86, "Radon", "Rn", 6, 18, 222.0176);
        public static readonly Element Francium = new Element(87, "Francium", "Fr", 7, 1, 223.0197);
        public static readonly Element Radium = new Element(88, "Radium", "Ra", 7, 2, 226.0254);
        public static readonly Element Actinium = new Element(89, "Actinium", "Ac", 7, 0, 227.0278);
        public static readonly Element Thorium = new Element(90, "Thorium", "Th", 7, 0, 232.03806);
        public static readonly Element Protactinium = new Element(91, "Protactinium", "Pa", 7, 0, 231.03588);
        public static readonly Element Uranium = new Element(92, "Uranium", "U", 7, 0, 238.02891);
        public static readonly Element Neptunium = new Element(93, "Neptunium", "Np", 7, 0, 237.0482);
        public static readonly Element Plutonium = new Element(94, "Plutonium", "Pu", 7, 0, 244.0642);
        public static readonly Element Americium = new Element(95, "Americium", "Am", 7, 0, 243.0614);
        public static readonly Element Curium = new Element(96, "Curium", "Cm", 7, 0, 247.0704);
        public static readonly Element Berkelium = new Element(97, "Berkelium", "Bk", 7, 0, 247.0703);
        public static readonly Element Californium = new Element(98, "Californium", "Cf", 7, 0, 251.0796);
        public static readonly Element Einsteinium = new Element(99, "Einsteinium", "Es", 7, 0, 252.0829);
        public static readonly Element Fermium = new Element(100, "Fermium", "Fm", 7, 0, 257.0951);
        public static readonly Element Mendelevium = new Element(101, "Mendelevium", "Md", 7, 0, 258.0986);
        public static readonly Element Nobelium = new Element(102, "Nobelium", "No", 7, 0, 259.1009);
        public static readonly Element Lawrencium = new Element(103, "Lawrencium", "Lr", 7, 3, 264);
        public static readonly Element Rutherfordium = new Element(104, "Rutherfordium", "Rf", 7, 4, 265);
        public static readonly Element Dubnium = new Element(105, "Dubnium", "Db", 7, 5, 268);
        public static readonly Element Seaborgium = new Element(106, "Seaborgium", "Sg", 7, 6, 272);
        public static readonly Element Bohrium = new Element(107, "Bohrium", "Bh", 7, 7, 273);
        public static readonly Element Hassium = new Element(108, "Hassium", "Hs", 7, 8, 276);
        public static readonly Element Meitnerium = new Element(109, "Meitnerium", "Mt", 7, 9, 279);
        public static readonly Element Darmstadtium = new Element(110, "Darmstadtium", "Ds", 7, 10, 278);
        public static readonly Element Roentgenium = new Element(111, "Roentgenium", "Rg", 7, 11, 283);
        public static readonly Element Copernicium = new Element(112, "Copernicium", "Cn", 7, 12, 285);
        public static readonly Element Ununtrium = new Element(113, "Ununtrium", "Uut", 7, 13, 287);
        public static readonly Element Ununquadium = new Element(114, "Ununquadium", "Uuq", 7, 14, 289);
        public static readonly Element Ununpentium = new Element(115, "Ununpentium", "Uup", 7, 15, 291);
        public static readonly Element Ununhexium = new Element(116, "Ununhexium", "Uuh", 7, 16, 293);
        public static readonly Element Ununseptium = new Element(117, "Ununseptium", "Uus", 7, 17, 295);
        public static readonly Element Ununoctium = new Element(118, "Ununoctium", "Uuo", 7, 18, 294);
    }
}